package com.wechat.android.app.utils.glide.config;

import android.content.Context;

import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.module.GlideModule;

/**
 * Created by yang on 2017/11/22.
 */

public class GlideMyModule implements GlideModule {
//    Location
//
//    设置磁盘高速缓存的位置也是可能的。
//
//    您可以使用内置的InternalCacheDiskCacheFactory私有内部缓存目录放置您的应用程序缓存:
//
//      new GlideBuilder(context)
//    .setDiskCache(new InternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));
//    您还可以使用内置的ExternalCacheDiskCacheFactory放置你的应用程序缓存在sd卡上公共缓存目录:
//
//      new GlideBuilder(context)
//    .setDiskCache(new ExternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));
//    如果你想使用其他一些自定义的位置,您还可以实现theDiskCache。自己的工厂接口,并使用DiskLruCacheWrapper在所需的位置创建一个新的缓存:
//     new GlideBuilder(context)
//    .setDiskCache(new DiskCache.Factory() {
//        @Override
//        public DiskCache build() {
//            File cacheLocation = getMyCacheLocation();
//            cacheLocation.mkdirs();
//            return DiskLruCacheWrapper.get(cacheLocation, yourSizeInBytes);
//        }
//    });
//    );

    // 需要在AndroidManifest.xml中声明
    // <meta-data
    //    android:name="com.czy.owner.utils.glide.config.GlideMyModule"
    //    android:value="GlideModule" />
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {

        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);

//        builder.setDiskCache(new InternalCacheDiskCacheFactory(context,
//                GlideCacheConfig.GLIDE_CARCH_DIR,
//                GlideCacheConfig.GLIDE_CATCH_SIZE));
        builder.setDiskCache(new DiskLruCacheFactory(GlideCacheConfig.downloadDirectoryPath, GlideCacheConfig.GLIDE_CATCH_SIZE));
    }

    @Override
    public void registerComponents(Context context, Glide glide) {

    }
}
